Method and system for accelerating receipt of data in a client to client network

ABSTRACT

A method and system for accelerating receipt of data in a client to client network. The method includes the steps of intercepting queries and responses, storing the intercepted queries and responses in an acceleration server and transmitting the intercepted responses to clients submitting intercepted queries. The system includes at least one acceleration server designed and configured to perform the steps included in the method.

RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 09/810,410 entitled “Method and System for Accelerating Receiptof Data in a Client to Client Network” filed on Mar. 19, 2001 to beissued as U.S. Pat. No. 7,203,741 on Apr. 10, 2007, which is anon-provisional application based on U.S. Patent Application No.60/239,273 filed on Oct. 12, 2000. Both the 09/810,410 and 60/239,273applications are hereby incorporated by reference.

FIELD AND BACKGROUND OF THE INVENTION

The present invention relates to a method and system for acceleratingreceipt of data in a client to client network and, more particularly, touse of an acceleration server in proximity to user clients within thenetwork to store previously received data.

Since the advent of computers, the ability of these machines tocommunicate with one another has increased greatly. It is now common forlarge numbers of computers to be organized in networks. Typically localarea networks (LANs) are further organized into wide area networks(WANs), the most striking example of which is the Internet.

The availability of Internet connectivity to a huge number of computershas created an unforeseen demand for data transfer among computer users.Often the available bandwidth along a portion of a data path is great,but the speed of data transfer is reduced by narrow bandwidth along adifferent portion of the path. Typically, bandwidth is less restrictedas the data path becomes shorter.

Client to client networks (also referred to as peer to peer networks)have become popular in recent years (see for example www.napster.com).These networks provide members with software that allows them totransfer and receive data directly from other members across theInternet. Typically the transferred data is organized in large fileswhich require significant amounts of time for transfer. The volume oftransferred data in client to client networks is such that it can, insome cases, reduce available bandwidth within a network. This can causeundesirable slowdowns for other users.

There is thus a widely recognized need for, and it would be highlyadvantageous to have, a method and system for accelerating receipt ofdata in a client to client network devoid of the above limitation.

SUMMARY OF THE INVENTION

According to one aspect of the present invention there is provided amethod of accelerating receipt of data in a client to client networkwherein each client in the client to client network operates a softwareprogram for implementing queries and providing responses. The methodincludes the steps of (a) intercepting queries and responses in theclient to client network; (b) storing the intercepted queries andresponses in an acceleration server; and (c) transmitting theintercepted responses to clients submitting intercepted queries.

According to another aspect of the present invention there is provided asystem for accelerating receipt of data in a client to client networkwherein each client in the client to client network operates a softwareprogram for implementing queries and providing responses. The systemincludes at least one acceleration server designed and configured to:(a) intercept queries and responses in the client to client networkwherein each of the queries and each of the responses contains uniqueidentification information therein, the unique identificationinformation facilitating interception thereof; (b) store the responses;and (c) transmit the responses to clients submitting interceptedqueries. According to further features in preferred embodiments of theinvention described below, step of intercepting is accomplished by aredirecting device.

According to still further features in the described preferredembodiments the redirecting device is a layer 4 switch.

According to still further features in the described preferredembodiments the acceleration server is located in a location selectedfrom the group consisting of within a local area network and in a serverbelonging to an Internet Service Provider.

According to still further features in the described preferredembodiments the queries are requests for data and the responses aredata.

According to still further features in the described preferredembodiments the data is in a format selected from the group of filetypes consisting of MP3, MPEG-2, MPEG-1, M-JPEG, MPEG-4,ActiveMovie/Video for Windows (.avi), QuickTime (.mov), RealVideo (.rmand .ram), H263.1, HTML, Flash, Gif, Tif, mpeguide and exe.

According to still further features in the described preferredembodiments wherein the software program includes at least two softwareprograms.

According to still further features in the described preferredembodiments the step of storing is accomplished by use of an algorithm.

According to still further features in the described preferredembodiments the algorithm includes analysis of at least one variableselected from the group consisting of: (i) temporal information; (ii)ordinal information; (iii) frequency information (iv) clientinformation; and (v) identification information.

According to still further features in the described preferredembodiments the temporal information includes at least one datumselected from the group consisting of time of initial storage, totalresidence time in storage, elapsed time since last retrieval fromstorage, average time between retrievals from storage and time ofcreation of an original file.

According to still further features in the described preferredembodiments the ordinal information includes at least one datum selectedfrom the group consisting of order of receipt and order of retrieval.

According to still further features in the described preferredembodiments the frequency information includes at least one datumselected from the group consisting of frequency of retrieval andfrequency of appearance in clients of the client to client network.

According to still further features in the described preferredembodiments the client information includes at least one datum selectedfrom the group consisting of client connection status, clientidentification, and presence of a specific data on a specific client.

According to still further features in the described preferredembodiments the identification information includes at least one datumselected from the group consisting of file identification, clientidentification, and identification of content within a file.

According to still further features in the described preferredembodiments a single query and a single response are each individuallyintercepted by at least two acceleration servers.

According to still further features in the described preferredembodiments multiple acceleration server have a relative configurationselected from the group consisting of in series and in parallel.

According to still further features in the described preferredembodiments the acceleration server is located in a location selectedfrom the group consisting of within a local area network, on a serverbelonging to an Internet service provider, at a cable televisionprovider junction, at a satellite relay link, and within an ADSLjunction. According to still further features in the described preferredembodiments the step of transmitting a specific intercepted response toa client submitting a specific intercepted query occurs only if aspecific client which served as a source of the specific interceptedresponse is available on the client to client network and only if thespecific client contains data identical to the specific interceptedresponse in a directory of the specific client.

According to still further features in the described preferredembodiments the sub-step of transmitting a specific packet of the atleast two packets to a client submitting a specific intercepted queryoccurs only if a specific client which served as a source of thespecific intercepted response is available on the client to clientnetwork and only if the specific client contains data identical to thespecific intercepted response in a directory of the specific client.

According to still further features in the described preferredembodiments the step of transmitting an intercepted response to a clientsubmitting a specific intercepted query occurs only if a specific clientwhich contains data equivalent to the specific intercepted response in adirectory of the specific client is available on the client to clientnetwork. According to still further features in the described preferredembodiments the sub-step of transmitting a specific packet of the atleast two packets to a client submitting a specific intercepted queryoccurs only if a specific client which contains data equivalent to thespecific intercepted response in a directory of the specific client isavailable on the client to client network.

According to still further features in the described preferredembodiments the acceleration server has a configuration selected fromthe group consisting of unidirectional and bi-directional.

According to still further features in the described preferredembodiments wherein the acceleration server further functions as aclient in the client to client network.

According to still further features in the described preferredembodiments the step of transmitting the intercepted responses toclients submitting intercepted queries includes simultaneoustransmission of portions of a single data set from at least two of theacceleration servers.

According to still further features in the described preferredembodiments the acceleration server acts as a transparent proxy server.

According to still further features in the described preferredembodiments the step of transmitting a specific response of theintercepted responses begins while the step of intercepting is still inprogress for the specific response.

According to still further features in the described preferredembodiments the specific client which contains data equivalent to thespecific intercepted response in a directory thereof includes at leasttwo separate and distinct clients.

According to still further features in the described preferredembodiments the step of storing the intercepted responses in anacceleration server includes storing a single intercepted response whichoriginates in at least two separate and distinct clients.

According to still further features in the described preferredembodiments the at least one acceleration server is further designed andconfigured for: (d) dividing a specific intercepted response of theintercepted responses into at least two packets and (e) transmitting theat least two packets to the clients submitting intercepted queries.

The present invention successfully addresses the shortcomings of thepresently known configurations by providing a method and system foraccelerating receipt of data in a client to client network which can beeasily implemented using commercially available hardware.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention is herein described, by way of example only, withreference to the accompanying drawings. With specific reference now tothe drawings in detail, it is stressed that the particulars shown are byway of example and for purposes of illustrative discussion of thepreferred embodiments of the present invention only, and are presentedin the cause of providing what is believed to be the most useful andreadily understood description of the principles and conceptual aspectsof the invention. In this regard, no attempt is made to show structuraldetails of the invention in more detail than is necessary for afundamental understanding of the invention, the description taken withthe drawings making apparent to those skilled in the art how the severalforms of the invention may be embodied in practice.

In the drawings:

FIG. 1 is a diagrammatic representation of components in a systemaccording to the present invention; and

FIG. 2 is a flow diagram of steps in a method according to the presentinvention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention is of a method and system for accelerating receiptof data in a client to client network which can be advantageouslyemployed to reduce traffic within a wide are network and increasebandwidth availability.

Specifically, the present invention can be used to store frequentlyrequested data on servers along a data path, thereby shortening the pathfor a subsequent retrieval of the same data.

The principles and operation of a method and system for acceleratingreceipt of data in a client to client network according to the presentinvention may be better understood with reference to the drawings andaccompanying descriptions.

Before explaining at least one embodiment of the invention in detail, itis to be understood that the invention is not limited in its applicationto the details of construction and the arrangement of the components setforth in the following description or illustrated in the drawings. Theinvention is capable of other embodiments or of being practiced orcarried out in various ways. Also, it is to be understood that thephraseology and terminology employed herein is for the purpose ofdescription and should not be regarded as limiting.

For purposes of this specification and the accompanying claims, thephrase “user client” generally refers to a computer and includes, but isnot limited to, personal computers (PC) having an operating system suchas DOS, Windows™, OS/2™ or Linux; Macintosh™, Palm OS™, EPOC™ computers;computers having JAVA™-OS as the operating system; and graphicalworkstations such as the computers of Sun Microsystems™ and SiliconGraphics™, and other computers having some version of the UNIX operatingsystem such as AIX™ or SOLARIS™ of Sun Microsystems™; or any other knownand available operating system; personal digital assistants (PDA),cellular telephones having computer capabilities, a telephone havingcomputer capabilities and Web TVs, each of which is known to include aninherent or connectable display device. A user client is characterizedas having at least one input device and at least one output device.

For purposes of this specification and the accompanying claims, the term“server” refers to any computing machine capable of exchanging data withat least one other computing machine. A single server may comprise anindividual computing machine or a plurality of such machines acting inconcert to perform a function requested by at least one other computingmachine.

For purposes of this specification and the accompanying claims, the term“Windows™” includes but is not limited to Windows 95™, Windows 2000™Windows 3.x™ in which “x” is an integer such as “1”, Windows NT™,Windows 98™, Windows CE™ Windows Millennium™ and any upgraded versionsof these operating systems by Microsoft Corp (USA) and/or windowmanagers for the graphical X Windows system for UNIX based operatingsystems and/or its variants such as Linux.

For purposes of this specification and the accompanying claims, thephrase “computing platform” refers to any particular operating systemand/or hardware device, as previously described, according to which theformat for data communication and/or presentation (display) thereof isdetermined.

For purposes of this specification and the accompanying claims, the term“data” refers to digital data including, but not limited to a softwareprogram, a text file, a sound file, a file containing at least one videoimage, and an animation sequence as well as to any combinations thereof.

For purposes of this specification and the accompanying claims, thephrase “channel of communication” includes, but is not limited to atelephone connection, a cellular telephone connection, an Internetconnection, an infrared frequency transmission connection, a local areanetwork connection, a radio frequency connection, a fiber-opticconnection or a connection by a wire. Inherent in the idea of acommunication channel is an open status during which data transmissionmay occur. In some cases, communication channels may also have a closedstatus during which no data transmission may occur. The phrase is to beconstrued in its broadest possible sense so that it encompasses any modeof data transfer.

For purposes of this specification and the accompanying claims thephrase “software program” refers to any algorithm for performing atleast one function on a computing device. The term specificallyincludes, but is not limited to web browsers, music players, animationplayers, video players, games, compression algorithms, search programs,client to client interfaces and viewers.

For purposes of this specification and the accompanying claims thephrase “display device” refers to any device for presentation of data toa user. The definition includes, but is not limited to speakers,earphones, LCD screens, LED displays, CRT displays and active matrixdisplays.

For purposes of this specification and the accompanying claims thephrase “input device” refers to any device for entry of data to acomputing device. The definition includes, but is not limited to akeyboard, a computer mouse, a trackpad, a track ball, a stylus, atouchscreen, a camera and a microphone.

Referring now to the drawings, FIG. 2 illustrates a method 20 ofaccelerating receipt of data in a client to client network. According tothe present invention, data is typically received in response to aquery. Each client 57 (FIG. 1) in the client to client network operatesa software program for implementing queries and providing responses. Thesoftware program may include, in some cases, at least two softwareprograms. Typically the queries are requests for data and the responsesare data. The data may be, for example, organized in a file type such asMP3, DVD, MPEG-2, MPEG-1, M-JPEG, MPEG-4, ActiveMovie/Video for Windows(.avi), QuickTime (.mov), RealVideo (.rm and .ram), H263.1, HTML, Flash,Gif, Tif, mpeguide, exe or any other file type.

Method 20 includes the step of intercepting 22 queries and responses inthe client to client network. According some embodiments of theinvention, the step of intercepting is accomplished by a redirectingdevice which may include, for example, a layer 4 switch.

Method 20 further includes the step of storing 24 the interceptedqueries and responses in an acceleration server 52.

Acceleration server 52 may be located, for example, within a local areanetwork 54 (e.g. 57 g and 57 k) or in a server 60 belonging to anInternet Service Provider. In some cases, step of storing 24 isaccomplished by use of an algorithm which may include analysis of, forexample, temporal information, ordinal information, frequencyinformation, client information, identification information orcombinations thereof. “Temporal information” as used herein may include,but is not limited to, data such as time of initial storage, totalresidence time in storage, elapsed time since last retrieval fromstorage, average time between retrievals from storage and time ofcreation of an original file. “Time” as used herein may include anyreference to an absolute or relative measure of time including, but notlimited to an absolute or elapsed time (e.g. 16:43:21 or 3 hrs 21minutes and 04 seconds since receipt) or an absolute or relative date(e.g. Feb. 22, 2001 or yesterday). “Ordinal information” as used hereinrefers to, for example, data such as order of receipt and order ofretrieval. “Frequency information” as used herein refers to, forexample, data such as frequency of retrieval and frequency of appearancein clients of the client to client network. “Client information” as usedherein refers to, for example, data such as client connection status,client identification, and presence of specific data (i.e. a file orportion thereof) on a specific client. “Identification information” asused herein refers to, for example, data such as file identification,client identification, and identification of content within a file.

Method 20 further includes the step of transmitting 26 the interceptedresponses to clients 57 submitting intercepted queries.

In some cases a single query or a single response may be intercepted byat least two acceleration servers. For example, a query for a video gamecalled “piggy picnic” originates at client 57 h in LAN 54 a. The queryis first intercepted by acceleration server 52 of client 57 g. Becausenetworks may reside one within another, although 57 g is a client withrespect to the client to client network, it (57 g) includes serverfunction within LAN 54 a. In this case acceleration server 52 of client57 g is not storing a copy of “piggy picnic” from a previous response,so the query is then relayed via ISP server 60 where the query isscreened against stored responses in acceleration server 52 of server60. Again, no match is found. The query is next relayed to user clients57 a, b, and c and to Internet 56. From Internet 56, the query isrelayed to LAN 54 b where it encounters acceleration server 52 of client57 k, and to Cable TV junction 62/Satellite relay 64 which contain anadditional acceleration server 52. By these means, the query eventuallyreaches all of clients 57. At this point the query has been intercepted,and according to some embodiments stored, in a total of fouracceleration servers 52. The result of the query is that copies of piggypicnic are present on clients 57 a and 57 m. This information is relayedto requesting client 57 h via the same channels of communicationdescribed hereinabove. At this point client 57 h requests to receive acopy of piggy picnic from client 57 a. As this request is fulfilled,copies of piggy picnic may be stored on acceleration servers 52 ofservers 60 and 57 g. As a result, a subsequent request from client 57 cfor piggy picnic may be answered by transmitting the game directly fromacceleration server 52 of server 60. Alternately or additionally asubsequent request from client 57 f for piggy picnic may be answered bytransmitting the game from acceleration server 52 of server 60 viaInternet 56 and acceleration server 52 of satellite relay 64 torequesting client 57 f. In this case, an additional copy of the game isgenerated at acceleration server 52 of satellite relay 64. In general,practice of method 20 causes copies of frequently requested data toaccumulate in areas where the requests originate.

According to additional embodiments of the invention, the step oftransmitting 26 a specific intercepted response to a client submitting aspecific intercepted query occurs only if a specific client which servedas a source of the specific intercepted response is available on theclient to client network and only if the specific client contains dataidentical to the specific intercepted response in a directory of thespecific client. According to these embodiments, acceleration server 52checks 36 if a specific intercepted response is available. If it isavailable, transmission occurs 26. If it is not available, notransmission occurs 40.

In some cases, requested data may be divided 28 into at least twopackets before transmission. According to additional embodiments of theinvention, the sub-step of transmitting a specific packet of the atleast two packets to a client submitting a specific intercepted queryoccurs only if a specific client which served as a source of thespecific intercepted response is available on the client to clientnetwork and only if the specific client contains data identical to thespecific intercepted response in a directory of the specific client.That is, prior to transmitting a packet the network is checked 38 forthe presence of that packet. If the packet is available, transmissionoccurs 26. If it is not available, no transmission occurs 40.

Alternately or additionally, the step of transmitting 26 an interceptedresponse to a client submitting a specific intercepted query occurs onlyif a specific client which contains data equivalent to the specificintercepted response in a directory of the specific client is availableon the client to client network. If the equivalent data is available,transmission occurs 26. If it is not available, no transmission occurs40. The same principle may be applied to packets. If an equivalentpacket is available, transmission occurs 26. If it is not available, notransmission occurs 40.

In some cases, the step of storing 24 the intercepted responses in anacceleration server may include storing 24 a single intercepted responsewhich originates in at least two separate and distinct clients. Forexample, client 57 a requests an accapella rendition of “Hatikva” by theRamallah boys' choir as an MP3 file. The requested file is found on bothclients 57 b and 57 c. The file is divided into ten packets, withpackets 1, 3, 5, 7 and 9 being sent to acceleration server 52 of server60 by client 57 b, and packets 2, 4, 6, 8 and 10 being sent toacceleration server 52 of server 60 by client 57 c.

Alternately or additionally, the step of transmitting 26 the interceptedresponses to clients 57 submitting intercepted queries may includesimultaneous transmission of portions of a single data set from at leasttwo of the acceleration servers. For example, if client 57 n requests anMP3 file of Suzy Cream Cheese, and the file is found on accelerationservers 52 of servers 60 and Satellite relay 64, packets having theirorigins in each of the two copies may be concurrently transmitted toclient 57 n in order to provide a single copy of this much loved ditty.

In some cases, the step of transmitting a specific response of theintercepted responses may begin while the step of intercepting is stillin progress for the specific response.

According to another aspect of the present invention there is provided asystem 50 for accelerating receipt of data in a client to client networkwherein each client in the client to client network operates a softwareprogram for implementing queries and providing responses. The systemincludes at least one acceleration server 52 designed and configured tointercept queries and responses in the client to client network whereineach of the queries and each of the responses contains uniqueidentification information therein, the unique identificationinformation facilitating interception thereof. Acceleration server 52 isfurther designed and configured to store the responses. Accelerationserver 52 is further designed and configured to transmit the responsesto clients submitting intercepted queries. Limits may be placed on thistransmission a described hereinabove and hereinbelow.

System 50 may contain multiple acceleration servers 52 which may have arelative configuration which is either in series or in parallel or acombination thereof. For example, in fulfilling a request originating atclient 57 m, acceleration server 52 of server 57 k and accelerationserver 52 of satellite relay 64 are in series with respect to oneanother. Similarly, acceleration server 52 of satellite relay 64 andacceleration server 52 of ISP server 60 are in parallel with one anotherwith respect to the same request.

Within system 50, acceleration server 52 may be located in a variety oflocations including, but not limited to, within local area network (54 aand 54 b), on a server 60 belonging to an Internet service provider, ata cable television provider junction 62, at a satellite relay link 64,and within an ADSL junction.

Similarly, acceleration server 52 may be configured to be eitherunidirectional or bi-directional. This means that, for example,acceleration server 52 of server 57 k may be configured to transmitstored responses only to members of LAN 54 b, in which case it is saidto be a unidirectional acceleration server 52. Alternately accelerationserver 52 of server 57 k may be configured to transmit stored responsesin response to queries from inside LAN 54 b and from clients 57 outsideLAN 54 b in which case it is said to be a bi-directional accelerationserver 52.

In some cases acceleration server 52 may further function as a client 57in the client to client network. Alternately or additionally,acceleration server 52 may act as a transparent proxy server.

In some cases the specific client 57 which contains data equivalent tothe specific intercepted response in a directory thereof includes atleast two separate and distinct clients. This may be the case when, forexample, a file is divided into packets as described hereinabove.

According to some embodiments of system 50, acceleration server 52 isfurther designed and configured for dividing a specific interceptedresponse of the intercepted responses into at least two packets andtransmitting the at least two packets to the clients submittingintercepted queries.

Although the invention has been described in conjunction with specificembodiments thereof, it is evident that many alternatives, modificationsand variations will be apparent to those skilled in the art.Accordingly, it is intended to embrace all such alternatives,modifications and variations that fall within the spirit and broad scopeof the appended claims.

All publications, patents and patent applications mentioned in thisspecification are herein incorporated in their entirety by referenceinto the specification, to the same extent as if each individualpublication, patent or patent application was specifically andindividually indicated to be incorporated herein by reference. Inaddition, citation or identification of any reference in thisapplication shall not be construed as an admission that such referenceis available as prior art to the present invention.

1. A method of transmitting data to a client in a peer-to-peer network,the peer-to-peer network including a plurality of clients, each of whichbeing capable of initiating queries to at least two other clients in thepeer-to-peer network, the queries identifying a desired data item andbeing sent to at least two other clients to each provide a differentportion of the data item, each of the clients also being capable ofresponding to queries from other clients, the method comprising: (a)identifying queries initiated by the first client to at least two otherclients in the peer-to-peer network to have the at least two otherclients each provide a different portion of a data item identified bythe queries; (b) determining whether any of the different portions ofthe data item that is identified by the queries initiated by the firstclient are stored at one or more acceleration servers; (c) when any oneof the different portions of the data item that is identified by thequeries initiated by the first client is stored at the one or moreacceleration servers, transmitting that portion of the data item storedat the one or more acceleration servers to the first client such thatthe first client receives that portion of the data item from the one ormore acceleration servers instead of from the at least two other clientsin the peer-to-peer network; and (d) when any one of the differentportions of the data item that is identified by the queries initiated bythe first client is not stored at the one or more acceleration servers,receiving that portion of the data item from one or more clients in thepeer-to-peer network and storing the portions of the data item at theone or more acceleration servers such that a subsequent request by aclient for that portion of the data item can be satisfied by the one ormore acceleration servers.
 2. The method of claim 1, wherein steps (a)through (d) are performed transparently to the first client and the atleast two other clients in the peer-to-peer network.
 3. The method ofclaim 1, wherein said one or more acceleration servers further functionas one or more clients in the peer-to-peer network.
 4. The method ofclaim 1, wherein step (a) comprises redirecting the queries.
 5. Themethod of claim 4, wherein redirecting the queries is performed using alayer 4 switch.
 6. The method of claim 1, wherein step (a) comprisesredirecting the queries and responses to said queries.
 7. The method ofclaim 1, wherein step (a) comprises monitoring communications from thefirst client.
 8. The method of claim 1, wherein step (a) comprisesreceiving the queries at the one or more acceleration servers.
 9. Themethod of claim 1, wherein step (a) comprises interceptingcommunications from the first client.
 10. The method of claim 1, whereinthe one or more acceleration servers are located in a local areanetwork, in a server at a cable television provider junction, at asatellite relay link, or within an ADSL junction.
 11. The method ofclaim 1, wherein the data item is in a format selected from the groupconsisting of MP3, DVid, MPEG-2, MPEG-1, M-JPEG, MPEG-4,ActiveMovie/Video for Windows (.avi), QuickTime (.mov), RealVideo (.rmand .ram), H263.1, HTML, Flash, GIF, TIFF, mpeguide, and exe.
 12. Themethod of claim 1, wherein step (b) further comprises analyzing portionsof identified data items based on at least one variable, and storing theportions of identified data items based on the at least one variable.13. The method of claim 12, wherein the variable is selected from thegroup consisting of temporal information, ordinal information, frequencyinformation, client information, and identification information.
 14. Themethod of claim 13, wherein said temporal information includes at leastone datum selected from the group consisting of time of initial storage,total residence time in storage, elapsed time since last retrieval fromstorage, average time between retrievals from storage, and time ofcreation of an original data item.
 15. The method of claim 13, whereinsaid ordinal information includes at least one datum selected from thegroup consisting of order of receipt and order of retrieval.
 16. Themethod of claim 13, wherein said frequency information includes at leastone datum selected from the group consisting of frequency of retrievaland frequency of appearance in clients of said peer-to-peer network. 17.The method of claim 13, wherein said client information includes atleast one datum selected from the group consisting of client connectionstatus, client identification, and presence of a specific data on aspecific client.
 18. The method of claim 13, wherein said identificationinformation includes at least one datum selected from the groupconsisting of file identification, client identification, andidentification of content within a data item.
 19. The method of claim 1,wherein each of the one or more acceleration servers has aunidirectional or bidirectional transmission policy, and wherein themethod further comprising, prior to step (c), analyzing the transmissionpolicy of the one or more acceleration servers.
 20. The method of claim1, wherein each of the one or more acceleration servers is associatedwith a given network and responds to queries from clients outside ofsaid given network.
 21. The method of claim 1, further comprising, priorto step (c), determining whether a particular client that served as asource of a portion of the data item stored at the one or moreacceleration servers is available on the peer-to-peer network.
 22. Themethod of claim 1, wherein when any one of the different portions of thedata item that is identified by the queries initiated by the firstclient is stored at the one or more acceleration servers, transmittingthat portion of the data item stored at the one or more accelerationservers to the first client only when a client having that portion ofthe data item is available on the peer-to-peer network.
 23. The methodof claim 1, wherein when any one of the different portions of the dataitem that is identified by the queries initiated by the first client isstored at the one or more acceleration servers, transmitting thatportion of the data item stored at the one or more acceleration serversto the first client only when a particular client to whom a query fromthe first client is directed is available on the peer-to-peer network.24. The method of claim 1, wherein said step of transmitting theportions of the data item stored at the one or more acceleration serversbegins while storing the portions of the data item for the queries. 25.The method of claim 1, wherein the queries and responses to the querieseach include unique identification information for data items orportions thereof.
 26. The method of claim 1, wherein the one or moreacceleration servers comprise a plurality of acceleration servers, atleast some of which are arranged in a series configuration.
 27. Themethod of claim 1, wherein the one or more acceleration servers comprisea plurality of acceleration servers, at least some of which are arrangedin a parallel configuration.
 28. The method of claim 1, wherein the oneor more acceleration servers comprise a plurality of accelerationservers, at least some of which are arranged in a series configurationand at least some of which are arranged in a parallel configuration. 29.The method of claim 1, wherein the one or more acceleration serverscomprise a plurality of acceleration servers, and the plurality ofacceleration servers cooperate in transmitting portions of the data itemto the first client in step (c).
 30. The method of claim 1, wherein theone or more acceleration servers comprise a plurality of accelerationservers, and wherein at least one portion of the data item istransmitted from one acceleration server to another before beingtransmitted to the first client in step (c).
 31. The method of claim 1,wherein the one or more acceleration servers comprise a plurality ofacceleration servers, and wherein step (d) comprises receiving theportions of the data item from one or more clients in the peer-to-peernetwork and storing the portions of the data item at the plurality ofacceleration servers such that a subsequent request by a client for theportions of the data item can be satisfied by one or more of theplurality of acceleration servers.
 32. The method of claim 1, whereinthe one or more acceleration servers comprise a plurality ofacceleration servers that cooperate to store data items such thatfrequently requested data items are stored at acceleration servers thatare physically closer to clients that originate requests for thefrequently requested data items.
 33. The method of claim 1, wherein theone or more acceleration servers each stores different portions of thedata item each received from at least two clients.
 34. The method ofclaim 1, wherein the one or more acceleration servers comprise aplurality of acceleration servers, each providing a different portion ofthe data item identified by the queries to the first client.
 35. Asystem for transmitting data to a client in a peer-to-peer network, thepeer-to-peer network including a plurality of clients, each of whichbeing capable of initiating queries to at least two other clients in thepeer-to-peer network, the queries identifying a desired data item andbeing sent to at least two other clients to each provide a differentportion of the data item, each of the clients also being capable ofresponding to queries from other clients, the system comprising one ormore servers operatively connected to the peer-to-peer network, each ofsaid one or more servers comprising: a mechanism for identifying aqueries initiated by the first client to at least two other clients inthe peer-to-peer network to have the at least two other clients eachprovide a different portion of a data item identified by the queries; amechanism for determining whether any one of the different portions ofthe data item that is identified by the queries initiated by the firstclient are stored at one or more servers; a mechanism for transmittingone or more different portions of the data item stored at the one ormore servers to the first client when any portions of the data item thatis identified by the queries initiated by the first client are stored atthe one or more servers such that the first client receives the portionsof the data item from the one or more servers instead of from the atleast two other clients in the peer-to-peer network; and a mechanism forreceiving the portions of the data item from one or more clients in thepeer-to-peer network and storing the portions of the data item at theone or more servers when any portions of the data item that isidentified by the queries initiated by the first client are not storedat the one or more servers such that a subsequent request by a clientfor the portions of the data item can be satisfied by the one or moreservers.
 36. The system of claim 35, wherein the one or more servers areconfigured to operate transparently to the first client and the at leasttwo other clients in the peer-to-peer network.
 37. The system of claim35, wherein said one or more servers further function as one or moreclients in the peer-to-peer network.
 38. The system of claim 35, whereinthe mechanism for identifying queries comprises a redirector forredirecting the queries.
 39. The system of claim 38, wherein theredirector comprises a layer 4 switch.
 40. The system of claim 35,wherein the mechanism for identifying queries redirects the queries andresponses to said queries.
 41. The system of claim 35, wherein themechanism for identifying queries monitors communications from the firstclient.
 42. The system of claim 35, wherein the mechanism foridentifying queries receives the queries at the one or more servers. 43.The system of claim 35, wherein the mechanism for identifying queriesintercepts communications from the first client.
 44. The system of claim35, wherein the one or more servers are located in a local area network,in a server at a cable television provider junction, at a satelliterelay link, or within an ADSL junction.
 45. The system of claim 35,wherein the data item is in a format selected from the group consistingof MP3, DVid, MPEG-2, MPEG-1, M-JPEG, MPEG-4, ActiveMovie/Video forWindows (.avi), QuickTime (.mov), RealVideo (.rm and .ram), H263.1,HTML, Flash, GIF, TIFF, mpeguide, and exe.
 46. The system of claim 35,wherein the mechanism for identifying queries further analyzes portionsof identified data items based on at least one variable, and stores theportions of identified data items based on the at least one variable.47. The system of claim 46, wherein the variable is selected from thegroup consisting of temporal information, ordinal information, frequencyinformation, client information, and identification information.
 48. Thesystem of claim 47, wherein said temporal information includes at leastone datum selected from the group consisting of time of initial storage,total residence time in storage, elapsed time since last retrieval fromstorage, average time between retrievals from storage, and time ofcreation of an original data item.
 49. The system of claim 47, whereinsaid ordinal information includes at least one datum selected from thegroup consisting of order of receipt and order of retrieval.
 50. Thesystem of claim 47, wherein said frequency information includes at leastone datum selected from the group consisting of frequency of retrievaland frequency of appearance in clients of said peer-to-peer network. 51.The system of claim 47, wherein said client information includes atleast one datum selected from the group consisting of client connectionstatus, client identification, and presence of a specific data on aspecific client.
 52. The system of claim 47, wherein said identificationinformation includes at least one datum selected from the groupconsisting of file identification, client identification, andidentification of content within a data item.
 53. The system of claim35, wherein each of the one or more servers has a unidirectional orbidirectional transmission policy, and is configured to analyze thetransmission policy of the one or more servers.
 54. The system of claim35, wherein each of the one or more servers is associated with a givennetwork and responds to queries from clients outside of said givennetwork.
 55. The system of claim 35, wherein the one or more servers areconfigured to determine whether a particular client that served as asource of a portion of the data item stored at the one or more serversis available on the peer-to-peer network.
 56. The system of claim 35,wherein the one or more servers are configured to determine whether aclient having a portion of the data item stored at the one or moreservers is available on the peer-to-peer network.
 57. The system ofclaim 35, wherein the one or more servers are configured to determinewhether a particular client to whom the queries from the first client isdirected is available on the peer-to-peer network.
 58. The system ofclaim 35, wherein each of the one or more servers are configured totransmit the portions of the data item stored at the one or more serverswhile storing the portions of the data item for the queries.
 59. Thesystem of claim 35, wherein the queries and responses to the querieseach include unique identification information for data items orportions thereof.
 60. The system of claim 35, wherein the one or moreservers comprise a plurality of servers, at least some of which arearranged in a series configuration.
 61. The system of claim 35, whereinthe one or more servers comprise a plurality of servers, at least someof which are arranged in a parallel configuration.
 62. The system ofclaim 35, wherein the one or more servers comprise a plurality ofservers, at least some of which are arranged in a series configurationand at least some of which are arranged in a parallel configuration. 63.The system of claim 35, wherein the one or more servers comprise aplurality of servers, and the plurality of servers cooperate intransmitting portions of the data item to the first client.
 64. Thesystem of claim 35, wherein the one or more servers comprise a pluralityof servers, and wherein at least one portion of the data item istransmitted from one server to another before being transmitted to thefirst client.
 65. The system of claim 35, wherein the one or moreservers comprise a plurality of servers, and wherein the portions of thedata item received from the one or more clients in the peer-to-peernetwork are stored at the plurality of servers such that a subsequentrequest by a client for the portions of the data item can be satisfiedby one or more of the plurality of servers.
 66. The system of 35,wherein the one or more servers comprise a plurality of servers thatcooperate to store data items such that frequently requested data itemsare stored at servers that are physically closer to clients thatoriginate requests for the frequently requested data items.
 67. Thesystem of claim 35, wherein the one or more servers each storesdifferent portions of the data item each received from at least twoclients.
 68. The system of claim 35, wherein the one or more serverscomprise a plurality of servers, each providing a different portion ofthe data item identified by the queries to the first client.
 69. One ormore computers for controlling data transmission to a client in apeer-to-peer network, the peer-to-peer network including a plurality ofclients, each of which being capable of initiating queries to at leasttwo other clients in the peer-to-peer network, the queries identifying adesired data item and being sent to at least two other clients to eachprovide a different portion of the data item, each of the clients alsobeing capable of responding to queries from other clients, the one ormore computers being configured to: (a) identify queries initiated bythe first client to at least two other clients in the peer-to-peernetwork to have the at least two other clients each provide a differentportion of a data item identified by the queries; (b) determine whetherany of the different portions of the data item that is identified by thequeries initiated by the first client are stored at the one or morecomputers; (c) when any one of the different portions of the data itemthat is identified by the queries initiated by the first client isstored at the one or more computers, transmit that portion of the dataitem stored at the one or more computers to the first client such thatthe first client receives that portion of the data item from the one ormore computers instead of from the at least two other clients in thepeer-to-peer network; and (d) when any one of the different portions ofthe data item that is identified by the queries initiated by the firstclient is not stored at the one or more computers, receive that portionof the data item from one or more clients in the peer-to-peer networkand store the portions of the data item at the one or more computerssuch that a subsequent request by a client that portion of the data itemcan be satisfied by the one or more computers.
 70. The one or morecomputers of claim 67, wherein (a) through (d) are performedtransparently to the first client and the at least two other clients inthe peer-to-peer network.
 71. The one or more computers of claim 69,wherein (a) comprises redirecting the queries.
 72. The one or morecomputers of claim 69, wherein redirecting the queries is performedusing a layer 4 switch.
 73. The one or more computers of claim 69,wherein (a) comprises redirecting the queries and responses to saidqueries.
 74. The one or more computers of claim 69, wherein (a)comprises monitoring communications from the first client.
 75. The oneor more computers of claim 69, wherein (a) comprises receiving thequeries at the one or more computers.
 76. The one or more computers ofclaim 69, wherein (a) comprises intercepting communications from thefirst client.
 77. The one or more computers of claim 69, wherein the oneor more computers are located in a local area network, in a server at acable television provider junction, at a satellite relay link, or withinan ADSL junction.
 78. The one or more computers of claim 69, wherein thedata item is in a format selected from the group consisting of MP3,DVid, MPEG-2, MPEG-1, M-JPEG, MPEG-4, ActiveMovie/Video for Windows(.avi), QuickTime (.mov), RealVideo (.rm and .ram), H263.1, HTML, Flash,GIF, TIFF, mpeguide, and exe.
 79. The one or more computers of claim 69,wherein (b) further comprises analyzing portions of identified dataitems based on at least one variable, and storing the portions ofidentified data items based on the at least one variable.
 80. The one ormore computers of claim 79, wherein the variable is selected from thegroup consisting of temporal information, ordinal information, frequencyinformation, client information, and identification information.
 81. Theone or more computers of claim 80, wherein said temporal informationincludes at least one datum selected from the group consisting of timeof initial storage, total residence time in storage, elapsed time sincelast retrieval from storage, average time between retrievals fromstorage, and time of creation of an original data item.
 82. The one ormore computers of claim 80, wherein said ordinal information includes atleast one datum selected from the group consisting of order of receiptand order of retrieval.
 83. The one or more computers of claim 80,wherein said frequency information includes at least one datum selectedfrom the group consisting of frequency of retrieval and frequency ofappearance in clients of said peer-to-peer network.
 84. The one or morecomputers of claim 80, wherein said client information includes at leastone datum selected from the group consisting of client connectionstatus, client identification, and presence of a specific data on aspecific client.
 85. The one or more computers of claim 80, wherein saididentification information includes at least one datum selected from thegroup consisting of file identification, client identification, andidentification of content within a data item.
 86. The one or morecomputers of claim 69, wherein each of the one or more computers has aunidirectional or bidirectional transmission policy, and furthercomprising instructions that cause the processor to analyze thetransmission policy of the one or more computers.
 87. The one or morecomputers of claim 69, wherein each of the one or more computers isassociated with a given network and responds to queries from clientsoutside of said given network.
 88. The one or more computers of claim69, wherein the one or more computers are further configured todetermine whether a particular client that served as a source of aportion of the data item stored at the one or more computers isavailable on the peer-to-peer network.
 89. The one or more computers ofclaim 69, wherein the one or more computers are further configured totransmit the portion of the data item stored at the one or morecomputers to the first client only when a client having a that portionof the data item is available on the peer-to-peer network.
 90. The oneor more computers of claim 69, wherein the one or more computers arefurther configured to transmit the portion of the data item stored atthe one or more computers to the first client only when a particularclient to whom the query from the first client is directed is availableon the peer-to-peer network.
 91. The one or more computers of claim 69,wherein the one or more computers are further configured to transmit theportions of the data item stored at the one or more computers whilestoring the portions of the data item for the queries.
 92. The one ormore computers of claim 69, wherein the queries and responses to thequeries each include unique identification information for data items orportions thereof.
 93. The one or more computers of claim 69, wherein theone or more computers comprise a plurality of servers, at least some ofwhich are arranged in a series configuration.
 94. The one or morecomputers of claim 69, wherein the one or more computers comprise aplurality of acceleration servers, at least some of which are arrangedin a parallel configuration.
 95. The one or more computers of claim 69,wherein the one or more computers comprise a plurality of servers, atleast some of which are arranged in a series configuration and at leastsome of which are arranged in a parallel configuration.
 96. The one ormore computers of claim 69, wherein the one or more computers comprise aplurality of servers, and the plurality of servers cooperate intransmitting portions of the data item to the first client in step (c).97. The one or more computers of claim 69, wherein the one or morecomputers comprise a plurality of servers, and wherein at least oneportion of the data item is transmitted from one server to anotherbefore being transmitted to the first client in step (c).
 98. The one ormore computers of claim 69, wherein the one or more computers comprise aplurality of servers, and wherein step (d) comprises receiving theportions of the data item from one or more clients in the peer-to-peernetwork and storing the portions of the data item at the plurality ofservers such that a subsequent request by a client for the portions ofthe data item can be satisfied by one or more of the plurality ofservers.
 99. The one or more computers of 67, wherein the one or morecomputers comprise a plurality of servers that cooperate to store dataitems such that frequently requested data items are stored at serversthat are physically closer to clients that originate requests for thefrequently requested data items.
 100. The one or more computers of claim69, wherein the one or more computers each stores different portions ofthe data item each received from at least two clients.
 101. The one ormore computers of claim 69, wherein the one or more computers comprise aplurality of servers, each providing a different portion of the dataitem identified by the query to the first client.